﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Csla;
namespace Sireass.Bl
{
        [Serializable]
    public class InformeCriteria: CriteriaBase<InformeCriteria>
    {
        #region Propiedades
        public static readonly PropertyInfo<long?> IdInformeProperty = RegisterProperty<long?>(c => c.IdInforme);
        public long? IdInforme
        {
            get { return ReadProperty(IdInformeProperty); }
            private set { LoadProperty(IdInformeProperty, value); }
        }

        public static readonly PropertyInfo<long?> IdAsignacionProperty = RegisterProperty<long?>(c => c.IdAsignacion);
        public long? IdAsignacion
        {
            get { return ReadProperty(IdAsignacionProperty); }
            private set { LoadProperty(IdAsignacionProperty, value); }
        }

        public static readonly PropertyInfo<byte?> IdEstatusInformeProperty = RegisterProperty<byte?>(c => c.IdEstatusInforme);
        public byte? IdEstatusInforme
        {
            get { return ReadProperty(IdEstatusInformeProperty); }
            private set { LoadProperty(IdEstatusInformeProperty, value); }
        }

        public static readonly PropertyInfo<string> AportacionProperty = RegisterProperty<string>(c => c.Aportacion);
          public string Aportacion
        {
            get { return ReadProperty(AportacionProperty); }
            private set { LoadProperty(AportacionProperty, value); }
        }
        public static readonly PropertyInfo<string> PoblacionBeneficiadaProperty = RegisterProperty<string>(c => c.PoblacionBeneficiada);
         public string PoblacionBeneficiada
        {
            get { return ReadProperty(PoblacionBeneficiadaProperty); }
            private set { LoadProperty(PoblacionBeneficiadaProperty, value); }
        }
        public static readonly PropertyInfo<string> ObservacionesProperty = RegisterProperty<string>(c => c.Observaciones);
         public string Observaciones
        {
            get { return ReadProperty(ObservacionesProperty); }
            private set { LoadProperty(ObservacionesProperty, value); }
        }

        public static readonly PropertyInfo<bool> HabilitadoProperty = RegisterProperty<bool>(c => c.Habilitado);
         public bool Habilitado
        {
            get { return ReadProperty(HabilitadoProperty); }
            private set { LoadProperty(HabilitadoProperty, value); }
        }
        public static readonly PropertyInfo<DateTime> FechaRegistroProperty = RegisterProperty<DateTime>(c => c.FechaRegistro);
       public DateTime FechaRegistro
        {
            get { return ReadProperty(FechaRegistroProperty); }
            private set { LoadProperty(FechaRegistroProperty, value); }
        }
        public static readonly PropertyInfo<DateTime> FechaActualizacionProperty = RegisterProperty<DateTime>(c => c.FechaActualizacion);
         public DateTime FechaActualizacion
        {
            get { return ReadProperty(FechaActualizacionProperty); }
            private set { LoadProperty(FechaActualizacionProperty, value); }
        }

        public static readonly PropertyInfo<DateTime> FechaVoBoProperty = RegisterProperty<DateTime>(c => c.FechaVoBo);
        public DateTime FechaVoBo
        {
            get { return ReadProperty(FechaVoBoProperty); }
            private set { LoadProperty(FechaVoBoProperty, value); }
        }

        public static readonly PropertyInfo<DateTime> FechaAutorizadoProperty = RegisterProperty<DateTime>(c => c.FechaAutorizado);
        public DateTime FechaAutorizado
        {
            get { return ReadProperty(FechaAutorizadoProperty); }
            private set { LoadProperty(FechaAutorizadoProperty, value); }
        }

        //public static readonly PropertyInfo<DateTime> FechaAltaProperty = RegisterProperty<DateTime>(c => c.FechaAlta);
        //[Display(Name = "Fecha Alta")]
        //public DateTime FechaAlta
        //{
        //    get { return GetProperty(FechaAltaProperty); }
        //    set { LoadProperty(FechaAltaProperty, value); }
        //}

        public static readonly PropertyInfo<DateTime> FechaBajaProperty = RegisterProperty<DateTime>(c => c.FechaBaja);
         public DateTime FechaBaja
        {
            get { return ReadProperty(FechaBajaProperty); }
            private set { LoadProperty(FechaBajaProperty, value); }
        }
        #endregion

        #region Factory
         public InformeCriteria(long? idInforme, long? idAsignacion, byte? idEstatusInforme)
         {
             IdInforme = idInforme;
             IdAsignacion = idAsignacion;
             IdEstatusInforme = idEstatusInforme;
                  }
        #endregion

    }


}
